<?php
// +----------------------------------------------------------------------
// | 有理想的地方，地狱都是天堂。
// +----------------------------------------------------------------------
// | Copyright @ df81.com 版权所有
// +----------------------------------------------------------------------
// | 作者: 南国老符 邮箱：1062129401@qq.com
// +----------------------------------------------------------------------

namespace app\admin\controller;
use think\facade\View;

class Payment extends Base{
    // 列表
    public function index(){
        return view();
    }

    // 编辑
    public function edit(){
        $type = input('type');

        if(!request()->isPost()){
            return view($type);
        }else{
            // 参数错误
            if(!in_array($type,array('wepay','alipay'))){
                return json(['code' => 1001, 'msg' => lang('c_error_parameter'), 'data' => array('type'=>$type)]);
            }

            $dofile = new \common\Dofile();
            // 在线支付
            switch ($type) {
                case 'wepay':
                    // 获取参数
                    $wepay_appid = input('wepay_appid'); $wepay_appkey = input('wepay_appkey');
                    $wepay_token = input('wepay_token'); $wepay_aeskey = input('wepay_aeskey'); $wepay_callback = input('wepay_callback');
                    $wepay_mch_id = input('wepay_mch_id'); $wepay_key = input('wepay_key'); $wepay_notify_url = input('wepay_notify_url');

                    $wechatNewContent = "<?php
                    // 微信相关
                    return [
                        'wechat' => [
                            // 基础配置，网页授权等
                            'app_id'  => '".$wepay_appid."',         // AppID
                            'secret'  => '".$wepay_appkey."',     // AppSecret
                            'token'   => '".$wepay_token."',          // Token
                            'aes_key' => '".$wepay_aeskey."',// EncodingAESKey，兼容与安全模式下请一定要填写！！！
                            'response_type' => 'array',

                            // 网页授权
                            'oauth' => [
                                'scopes'   => ['snsapi_userinfo'],
                                'callback' => '".$wepay_callback."',
                            ],

                            // 微信支付
                            'mch_id'             => '".$wepay_mch_id."',  // 商户号
                            'key'                => '".$wepay_key."',   // API 密钥
                            // 如需使用敏感接口（如退款、发送红包等）需要配置 API 证书路径(登录商户平台下载 API 证书)
                            'cert_path'          => 'cert/apiclient_cert.pem', // XXX: 绝对路径！！！！
                            'key_path'           => 'cert/apiclient_key.pem',      // XXX: 绝对路径！！！！
                            'notify_url'         => '".$wepay_notify_url."',     // 你也可以在下单时单独设置来想覆盖它

                            // 日志
                            'log' => [
                                'level' => 'debug',
                                'file' => app()->getRootPath().'runtime/payment/wechat.log',
                            ],
                        ],
                    ];";

                    // 修改微信相关配置
                    $wechatPath = app()->getConfigPath().'wechat.php';
                    $dofile->editFile($wechatPath,file_get_contents($wechatPath),$wechatNewContent);
                    break;

                case 'alipay':
                    // 获取参数
                    $alipay_appid = input('alipay_appid');
                    $alipay_notify_url = input('alipay_notify_url'); $alipay_return_url = input('alipay_return_url');
                    $ali_private_key = input('ali_private_key'); $ali_public_key = input('ali_public_key');

                    $alipayNewContent = "<?php
                    // 支付宝相关
                    return [
                        'alipay' => [
                            'app_id' => '".$alipay_appid."',
                            'notify_url' => '".$alipay_notify_url."',
                            'return_url' => '".$alipay_return_url."',
                            // 商户私钥：加密方式：RSA2
                            'private_key' => '".$ali_private_key."',
                            // 支付宝公钥
                            'ali_public_key' => '".$ali_public_key."',
                            'log' => [
                                'file' => app()->getRootPath().'runtime/payment/alipay.log',
                                'level' => 'info', // 建议生产环境等级调整为 info，开发环境为 debug
                                'type' => 'single', // optional, 可选 daily.
                                'max_file' => 30, // optional, 当 type 为 daily 时有效，默认 30 天
                            ],
                            'http' => [
                                'timeout' => 5.0,
                                'connect_timeout' => 5.0,
                            ],
                            //'mode' => 'dev', // optional,设置此参数，将进入沙箱模式
                        ],
                    ];";

                    // 修改支付宝相关配置
                    $alipayPath = app()->getConfigPath().'alipay.php';
                    $dofile->editFile($alipayPath,file_get_contents($alipayPath),$alipayNewContent);
                    break;

            }

            return json(['code' => 200, 'msg' => lang('c_success'), 'data' => '']);
        }
    }
}